package Method_Case_project;

import java.util.Scanner;

public class case9_Judges_score {
    public static void main(String[] args) {
        //在唱歌比赛中，有6名评委给选手打分，分数范围是[0 - 100]之间的整数。
        //选手的最后得分为：去掉最高分、最低分后的4个评委的平均分。
        //请完成上述过程并计算出选手的得分。

        //分析：
        //1、定义一个数组，用来存储6名评委的打分（0～100）
        int[] scores = getScores();

//        for (int i = 0; i < scores.length; i++) {
//            System.out.println(scores[i]);
//        }

        //2、求出数组中的最大值
        int max = getMax(scores);

        //3、求出数组中的最小值
        int min = getMin(scores);

        //4、求出数组中6个分数的总和
        int sum = getSum(scores);

        //5、（总和 - 最大值 - 最小值）/ 4
        int avg = (sum - min - max) / (scores.length - 2);

        //打印结果
        System.out.println(avg);
    }

    public static int getSum(int[] scores) {
        int sum = 0;
        for (int i = 0; i < scores.length; i++) {
            sum += scores[i];
        }
        return sum;
    }

    public static int getMax(int[] scores) {
        int max = scores[0];
        for (int i = 0; i < scores.length; i++) {
            if (max < scores[i]) {
                max = scores[i];
            }
        }
        return max;
    }

    public static int getMin(int[] scores) {
        int min = scores[0];
        for (int i = 0; i < scores.length; i++) {
            if (min > scores[i]) {
                min = scores[i];
            }
        }
        return min;
    }

    //1、我要干嘛？   定义一个数组，用来存储6名评委的打分（0～100）
    //2、我需要什么？ 都不需要
    //3、干完了这件事情，是否需要返回？ 必须返回
    public static int[] getScores() {
        //定义数组
        int[] scores = new int[6];

        //使用键盘录入的形式，输入分数：0～100
        Scanner sc = new Scanner(System.in);

        for (int i = 0; i < scores.length; ) {
            System.out.println("请输入评委的打分：");
            int score = sc.nextInt();

            if (score >= 0 && score <= 100) {
                scores[i] = score;
                i++;
            } else {
                System.out.println("输入的分数不合法，请重新输入");
            }

        }

        return scores;
    }

}
